// **********************************************************************
//
// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

// Ice version 3.3.0

package CommProxy;

public abstract class _IWriteableDisp extends Ice.ObjectImpl implements
		IWriteable {
	protected void ice_copyStateFrom(Ice.Object __obj)
			throws java.lang.CloneNotSupportedException {
		throw new java.lang.CloneNotSupportedException();
	}

	public static final String[] __ids = { "::CommProxy::IWriteable",
			"::Ice::Object" };

	public boolean ice_isA(String s) {
		return java.util.Arrays.binarySearch(__ids, s) >= 0;
	}

	public boolean ice_isA(String s, Ice.Current __current) {
		return java.util.Arrays.binarySearch(__ids, s) >= 0;
	}

	public String[] ice_ids() {
		return __ids;
	}

	public String[] ice_ids(Ice.Current __current) {
		return __ids;
	}

	public String ice_id() {
		return __ids[0];
	}

	public String ice_id(Ice.Current __current) {
		return __ids[0];
	}

	public static String ice_staticId() {
		return __ids[0];
	}

	public final int trans(CBasicParameter frame) {
		return trans(frame, null);
	}

	public static Ice.DispatchStatus ___trans(IWriteable __obj,
			IceInternal.Incoming __inS, Ice.Current __current) {
		__checkMode(Ice.OperationMode.Idempotent, __current.mode);
		IceInternal.BasicStream __is = __inS.is();
		__is.startReadEncaps();
		CBasicParameterHolder frame = new CBasicParameterHolder();
		__is.readObject(frame.getPatcher());
		__is.readPendingObjects();
		__is.endReadEncaps();
		IceInternal.BasicStream __os = __inS.os();
		int __ret = __obj.trans(frame.value, __current);
		__os.writeInt(__ret);
		return Ice.DispatchStatus.DispatchOK;
	}

	private final static String[] __all = { "ice_id", "ice_ids", "ice_isA",
			"ice_ping", "trans" };

	public Ice.DispatchStatus __dispatch(IceInternal.Incoming in,
			Ice.Current __current) {
		int pos = java.util.Arrays.binarySearch(__all, __current.operation);
		if (pos < 0) {
			throw new Ice.OperationNotExistException(__current.id,
					__current.facet, __current.operation);
		}

		switch (pos) {
		case 0: {
			return ___ice_id(this, in, __current);
		}
		case 1: {
			return ___ice_ids(this, in, __current);
		}
		case 2: {
			return ___ice_isA(this, in, __current);
		}
		case 3: {
			return ___ice_ping(this, in, __current);
		}
		case 4: {
			return ___trans(this, in, __current);
		}
		}

		assert (false);
		throw new Ice.OperationNotExistException(__current.id, __current.facet,
				__current.operation);
	}

	public void __write(IceInternal.BasicStream __os) {
		__os.writeTypeId(ice_staticId());
		__os.startWriteSlice();
		__os.endWriteSlice();
		super.__write(__os);
	}

	public void __read(IceInternal.BasicStream __is, boolean __rid) {
		if (__rid) {
			__is.readTypeId();
		}
		__is.startReadSlice();
		__is.endReadSlice();
		super.__read(__is, true);
	}

	public void __write(Ice.OutputStream __outS) {
		Ice.MarshalException ex = new Ice.MarshalException();
		ex.reason = "type CommProxy::IWriteable was not generated with stream support";
		throw ex;
	}

	public void __read(Ice.InputStream __inS, boolean __rid) {
		Ice.MarshalException ex = new Ice.MarshalException();
		ex.reason = "type CommProxy::IWriteable was not generated with stream support";
		throw ex;
	}
}
